package com.ruoyi.market.service.impl;

import com.ruoyi.market.domain.Article;
import com.ruoyi.market.mapper.ArticleMapper;
import com.ruoyi.market.service.IArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.validation.Validator;
import java.util.List;

/**
 * 文章 业务层处理
 * 
 * @author ruoyi
 */
@Service
public class ArticleServiceImpl implements IArticleService
{
    @Autowired
    private ArticleMapper articleMapper;

    @Autowired
    protected Validator validator;

    /**
     * 根据条件分页查询文章列表
     * 
     * @param article 文章信息
     * @return 文章信息集合信息
     */
    @Override
    public List<Article> selectArticleList(Article article)
    {
        return articleMapper.selectArticleList(article);
    }

    /**
     * 通过文章名查询文章
     *
     * @param articleType 文章名
     * @param shopId 店铺ID
     * @return 文章对象信息
     */
    @Override
    public Article checkArticleUnique(String articleType, String shopId)
    {
        return articleMapper.checkArticleUnique(articleType, shopId);
    }

    /**
     * 通过文章ID查询文章
     * 
     * @param articleId 文章ID
     * @return 文章对象信息
     */
    @Override
    public Article selectArticleById(Long articleId)
    {
        return articleMapper.selectArticleById(articleId);
    }

    /**
     * 新增保存文章信息
     * 
     * @param article 文章信息
     * @return 结果
     */
    @Override
    @Transactional
    public int insertArticle(Article article)
    {
        // 新增文章信息
        int rows = articleMapper.insertArticle(article);
        return rows;
    }

    /**
     * 修改保存文章信息
     * 
     * @param article 文章信息
     * @return 结果
     */
    @Override
    @Transactional
    public int updateArticle(Article article)
    {
        return articleMapper.updateArticle(article);
    }

    /**
     * 修改文章状态
     * 
     * @param article 文章信息
     * @return 结果
     */
    @Override
    public int updateArticleStatus(Article article)
    {
        return articleMapper.updateArticle(article);
    }

    /**
     * 批量删除文章信息
     * 
     * @param articleIds 需要删除的文章ID
     * @return 结果
     */
    @Override
    @Transactional
    public int deleteArticleByIds(Long[] articleIds) { return articleMapper.deleteArticleByIds(articleIds); }
}
